package com.spark.sql

import org.apache.spark.sql.SparkSession

object DataFrameApp {
  def main(args: Array[String]) {
    var spark = SparkSession.builder.appName("dataFrameApp").master("local[*]").getOrCreate()
    var df = spark.read.format("json").load("file:///Users/username/workspace_code/learn/spark-learn/datasets/stu.json")

    // 输出dataFrame对应的schema信息
    df.printSchema()

    // 输出数据集的数据，参数为显示前n行
    df.show(100)

    //  查询某列所有的数据: select name from table
    df.select("name").show()

    // 查询某几列所有的数据，并对列进行计算： select name, age+10 from table
    df.select(df.col("name"), (df.col("age") + 10).as("age2")).show()

    // 根据某一个的值进行过滤： select  * from table where age > 10
    df.filter(df.col("age") > 10).show()
    // 也可以使用wher操作
    // df.where(df.col("age") > 10).show()

    // 根据某一列的值进行分组，然后再进行聚合操作： select age, count(1) from table group by age
    df.groupBy("age").count().show()

    spark.stop()

  }
}
